Associating deals with events in a social networking system

ABSTRACT

Social networking systems create representations of events associated with deals and populate attributes of the event based on information associated with the deal. Examples of attributes populated based on the deal include location for the event, potential participants for the event, or time for the event. The deal can be a social deal that is activated by participation of multiple users of the social networking system. The social networking system synchronizes potential or actual participants for the event with potential or actual participants of the social deal. The social networking system identifies events represented in the social networking system that are associated with the deal and suggests possible interactions with the entities to users associated with the deal. For example, the social networking system may request the user to become member of a social group associated with the deal, or purchase another deal associated with the current deal.

CROSS REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 61/452,577 filed Mar. 14, 2011, which is incorporated byreference in its entirety.

BACKGROUND

This invention relates to deals in social networking systems and inparticular to associating deals with events represented in a socialnetworking system.

Providers of services and/or products offer deals to potential orcurrent customers to entice them to make purchases. A deal is an offerto sell a product or service to a customer, oftentimes including aparticular benefit available to customers who buy the product or servicethrough the deal. For example, a deal may offer a product or service ata discounted price, such as a fixed percent of the original price or afixed amount below the original price. A deal may offer a discount on afuture purchase of a product/service upon a purchase of a similar or adifferent product/service. A deal may also offer access to inventory notopen to the general population. For example, a deal may provide discounton a second product upon purchase of a first product. Deals are oftenoffered by providers who are different from the actual seller of theproduct or service. The deal provider manages the deal purchasetransaction and gives a voucher for the transaction to the customer, whocan then redeem the voucher for the purchased product or service.

Providers offer deals for various reasons. Sometimes providers offerdeals on products that they are trying to dispose off quickly to makeroom for a new line of products. Sometimes providers offer deals sincethey realize that users are interested in making a purchase only ifthere is a deal available. Conversely, consumers often closely monitordeals. Therefore, deals draw attention of users to particular productsand bring the product on the radar of potential customers.

Providers are always coming up with creative ways to offer deals to getuser's attention. A user is more likely to be interested in deals if theuser can utilize the benefits of the deals effectively. If a user'sexperience in utilizing deals is a pleasant experience, the user islikely to utilize more deals from the provider in future. Therefore,providers would like to make the user's experience in purchasing andutilizing a deal as easy and pleasant to the user as possible.Nevertheless, providers have not leveraged the power of socialnetworking to make deals more effective to achieve their goals.

SUMMARY

Embodiments of the invention create representations of events in thesocial networking system based on deals. A user performs an actionassociated with a deal, for example, by sending a request to participatein a deal. The social networking system creates a representation of anevent associated with the deal and populates attributes of the eventbased on information associated with the deal. For example, the socialnetworking system determines potential locations for the event,potential participants for the event, or time for the event based on thedeal. The social networking system may send information describing theevent to the user and allow the user to update the attribute values ifneeded.

In an embodiment, the deal is a social deal that requires participationby multiple users of the social networking system in order to beactivated. The social networking system synchronizes the potential oractual participants for the event with the potential or actualparticipants of the social deal. For example, if a potential participantof the social deals confirms participation in the social deal, the eventis updated to change the potential participant to a confirmedparticipant. Similarly, if there is an update to information associatedwith the participants of the event, the social deal is updated with thenew information.

In an embodiment, the social networking system identifies entitiesrepresented in the social networking system that are associated with thedeal. Examples of entities associated with the deal include socialgroups, images, other deals, or events represented in the socialnetworking system. The social networking system identifies actionsassociated with the identified events and sends requests to the userassociated with the deal to perform the actions. For example, the socialnetworking system may request the user to become member of the socialgroup associated with the deal, comment on an image of a locationassociated with the deal, purchase another deal associated with thecurrent deal, or send an RSVP message for an event associated with thedeal.

The features and advantages described in the specification are not allinclusive and, in particular, many additional features and advantageswill be apparent to one of ordinary skill in the art in view of thedrawings, specification, and claims. Moreover, it should be noted thatthe language used in the specification has been principally selected forreadability and instructional purposes, and may not have been selectedto delineate or circumscribe the inventive subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a system environment for allowing users of asocial networking system to interact with social deals, in accordancewith an embodiment of the invention.

FIG. 2 is a diagram of the system architecture of a social networkingsystem for allowing users of a social networking system to interact withsocial deals, in accordance with an embodiment of the invention.

FIG. 3 is a user interface for allowing a user of a social networkingsystem to interact with deals of interest to the user, in accordancewith an embodiment of the invention.

FIG. 4 is a user interface for presenting social information associatedwith deals of interest to the user of a social networking system, inaccordance with one embodiment of the invention.

FIG. 5 shows a screenshot of a user interface displaying connections ofa user of the social networking system as potential participants of asocial deal, in accordance with one embodiment of the invention.

FIG. 6 shows a flowchart of a process for associating deals with actionsin the social networking system that a user can take, in accordance withone embodiment of the invention.

FIG. 7 a flowchart of a process for creating events associated withdeals in the social networking system, in accordance with one embodimentof the invention.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION

Embodiments use social networking systems to incorporate socialinformation of users to improve user interactions with deals.Incorporation of social information provides better experience for theusers interacting with the deals which in turn results in more usersgetting interested in deals. This furthers the goals of the providerssince the providers are attempting to increase the number of potentialcustomers by offering deals. Besides, deals provide a social experienceto the users and a valuable interaction with the social networkingsystem. Users that find the social networking system valuable are morelikely to be loyal to the social networking system. Increased loyalty ofthe users to the social networking system is likely to attract moreproviders offering advertisements and deals via the social networkingsystem. Since social networking systems derive revenue fromadvertisements, this provides increased revenues for the socialnetworking systems.

Deals can provide a social experience for people. Multiple users mayparticipate in a social deal or make a purchase associated with the dealtogether. For example, friends may go shopping together, go to arestaurant together, or even make an online purchase together. Users maycommunicate with each other via email, phone, or conventional mechanismsto complete the purchase associated with the deal and exploit thebenefits of the deal. The social networking system utilizes the socialinformation available in the social networking system to facilitate thesocial experience associated with a deal.

One way embodiments incorporate social information in deals is bycreating representations of events associated with deals. Users of asocial networking system often create representations of events in thesocial networking system. An event may be a concert, a game, or simply adinner at a restaurant. Users often include their connections in theevents, for example, a user may invite a set of friends for meeting overa dinner. Embodiments determine whether a deal may be associated with apotential event for a user and create a representation of the associatedevent if possible. The user is allowed to interact with the event toprovide additional information. The social networking system uses theinformation available in the deal to assist the user in finalizing theevent. The social networking system synchronizes the information in thedeal with the information in the event so as to update one entity whenthere is a relevant change in the other entity.

Information Describing a Deal

A deal is associated with an offer made to a user that provides certainbenefits to the user upon acceptance. The benefit offered by a dealcorresponds to a value of the deal or a price of the deal. For example,a deal that offers higher benefits provides higher value compared to adeal that offers lower benefits. In an embodiment, a user can purchase adeal by paying a price for the deal. The user can subsequently redeemthe deal by making a purchase or a transaction. Providers often presenta deal to the users along with their advertisements. Typically, thebenefits offered by a deal are associated with a transaction, forexample, a purchase of a product or service offered by the provider. Atransaction between a customer and a provider involves an exchangebetween a user and a provider, wherein the customer provides money tothe provider and the provider provides one or more products and/orservices to the customer. However a transaction involving a dealprovides additional benefits to the user.

Benefits offered by a deal can include a reduction in the price of theproduct and/or service. Alternatively, the benefits provided by a dealmay include advantages including free shipping, a coupon for asubsequent purchase, a reduction in price of a different item bought inthe same transaction, no sales tax, and the like. The benefitsassociated with a deal are referred to as the value of the deal or theprice of the deal.

A deal may be associated with a time period. For example, a deal canonly be used after a start date and before an end date. The deal may beassociated with other limits on the purchases. For example, the deal mayapply to all items purchased in a transaction, the deal may apply to allpurchases made on a particular day, or the deal may apply to a singleitem. These limits on the purchases applicable to a deal are called themaximum redemption of the deal.

The deal may also be associated with a location. For example, onelocation of a store may offer a deal but other locations may not. A dealmay also be associated with an event. A deal may be applicable toin-store purchases as opposed to online purchases, or the deal may befor online purchases only. The deal may also have a specific redemptionmethod. For example, the deal may require a user to present a coupon ora coupon code, the deal may be automatically offered upon making apurchase, the deal may require use of a particular type of paymentmechanism including a specific type or credit or debit card, or the dealmay require presentation of proof of membership in a club.

A deal may be associated with other conditions, for example, the numberof purchases made by the user must exceed a threshold value or the totalvalue of the purchases must exceed an amount. When the requiredconditions associated with a deal are satisfied, the deal is consideredactivated. The activation of a deal may require an explicit statuschange by the provider of the deal. Alternatively, the activation may beautomatic upon satisfaction of the required conditions and the user getsthe benefits of the deal when the user completes an applicabletransaction. The user may be required to complete a transactionassociated with the purchase to redeem an activated deal.

Activating a deal comprises marking the deal as ready for use by a user.For example, a deal that is activated can be presented to the user as acoupon that can be redeemed by the user. An activation of a deal mayrequire certain actions to be performed by multiple users. For example,the activation of a deal may require multiple users to be present at alocation associated with the provider. If more than a threshold numberof user's friends' check-in to a location along with the user, the dealis activated. Each user who participates in the activation of the dealis called a participant of the deal. The deal may offer benefits to oneuser or to all the participants of the deal. For example, a restaurantdeal activated by a number of friends present at the location may offera price reduction upon payment by a single user or it may offer pricereduction to each participant making a separate payment. In anembodiment, activation of the deal comprises redemption of the deal. Forexample, if more than a threshold number of connections of a userpurchase tickets for an event (for example, a concert) via the socialnetworking system, a social deal provides the tickets at a discountedprice. In this case, the activation of the deal happens when the deal isredeemed.

A reference to a deal in this disclosure may refer to an instance ofdeal associated with a particular user or a type of a deal offered by aprovider. The context of the disclosure clarifies whether a deal refersto an instance of a deal or deals of a particular type. For example, adeal may refer to an offer by a particular provider that gives 20%discount on a product if purchased before a given date. A deal may alsorefer to an instance of a social deal that is specific to a user andrequires participation by connections of the user. There may be multipleinstances of the deal created for different user. Each instance of thedeal stores information specific to the deal, for example, usersparticipating in that instance.

Deals System Environment

FIG. 1 is a diagram of a system environment for allowing users of asocial networking system to interact with social deals, in accordancewith an embodiment of the invention. The users 135 interact with thesocial networking system 100 using client devices 105. The providersystems 120 (also referred to as “provider” herein) interact with thesocial networking system 100 to provide information describing thedeals. Some embodiments of the systems 100, 120, and 130 have differentand/or other modules than the ones described herein, and the functionscan be distributed among the modules in a different manner thandescribed here.

FIG. 1 and the other figures use like reference numerals to identifylike elements. A letter after a reference numeral, such as “130A,”indicates that the text refers specifically to the element having thatparticular reference numeral. A reference numeral in the text without afollowing letter, such as “130,” refers to any or all of the elements inthe figures bearing that reference numeral (e.g. “130” in the textrefers to reference numerals “130A” and/or “130B” in the figures).

A provider system 120 comprises a provider application programminginterface (API) module 125 that allows the social networking system 100to interact with the provider system. In an embodiment, the providerAPIs 125 may be implemented as a web service. The provider APIs 125allow the social networking system 100 to send requests for informationto the provider system 120 and receive information associated with thedeals from the provider system 120. For example, the social networkingsystem 100 may send a request to the provider system 120 to determinewhether a user of the social networking system 100 is an existingcustomer of the provider system 120.

In one embodiment, the client device 105 used by a user 135 forinteracting with the social networking system 100 can be a personalcomputer (PC), a desktop computer, a laptop computer, a notebook, atablet PC executing an operating system, for example, a MicrosoftWindows-compatible operating system (OS), Apple OS X, and/or a Linuxdistribution. In another embodiment, the client device 105 can be anydevice having computer functionality, such as a personal digitalassistant (PDA), mobile telephone, smartphone, etc.

The client device 105 executes a user interface called dashboard 130 toallow the user 135 to interact with the social networking system 100.The dashboard 130 allows the user 135 to perform various actions relatedto deals. These actions include retrieving information describing dealsthat are likely to be of interest to the user, recommending deals toconnections of the user, participating in a social deal, checking in toa location associated with a deal provider, and making a purchase usingthe deal. In an embodiment, the dashboard 130 is presented to the uservia a browser application that allows a user to retrieve and presentinformation from the internet or from a private network.

The social networking system 100 offers its users the ability tocommunicate and interact with other users of the social networkingsystem 100. Users join the social networking system 100 and then addconnections to a number of other users of the social networking system100 to whom they desire to be connected. As used herein, the term“friend” refers to any other user to whom a user has formed aconnection, association, or relationship via the social networkingsystem 100. The term friend need not require that users to actually befriends in real life, (which would generally be the case when one of themembers is a business or other entity); it simply implies a connectionin the social networking system 100.

The social networking system 100 maintains different types of objectsrepresenting entities, for example, user profile objects 175, connectionobjects 195, event objects 190, deal objects 180, and provider objects185. An object may be stored for each instance of the associated entity.A user profile object 175 stores information describing a user of thesocial networking system 100. A connection object 195 stores informationdescribing relations between two users of the social networking systemor in general any two entities represented in the social networkingsystem 100. The event objects 190 store representations of real-worldevents in the social networking system 100. The deal objects 180represent deals and the provider objects represent providers in thesocial networking system 100. These objects are further described indetail herein.

The social networking system 100 comprises an external system interface110, a dashboard manager 115 and various modules described in FIG. 2.The dashboard manager 115 allows users of the social networking system100 to interact with the deals via the dashboard 130 user interface. Thedashboard manager 115 presents information describing deals of interestto a user. For example, the dashboard manager may present differenttypes of deals to two users that have different interests.

The dashboard manager 115 allows a user 135 to perform various actionsassociated with the deal. These actions include purchasing the deal,recommending the deal to a connection, commenting on the deal, followingthe deal, liking the deal, participating in a social deal, uploading animage associated with the deal, for example, uploading an image taken ata location associated with the deal for display as part of the user'sprofile. A user purchases a deal by completing a transaction that takesadvantage of the deal. For example, if the deal offers a 20% discount onpurchase of a product, the user purchases the deal by purchasing theproduct and redeeming the deal for the purchase.

The dashboard manager 115 receives requests from the user 135 forperforming actions related to deals. A user 135 sends requests to thedashboard manager 115 via the dashboard 130. For example, a user 135 amay send a request to recommend a deal to a connection of the user 135 a(say, user 135 b). The dashboard manager 115 may invoke other modules ofthe social networking system 100 shown in FIG. 2 to perform a requestedaction.

The external systems interface 110 of the social networking system 100allows various modules of the social networking system 100 to interactwith external systems including the provider systems 120. For example, amodule of the social networking system 100 may update the providersystem 120 with information describing a transaction made by a user 135.The external system interface 110 invokes the provider APIs 125 forinteracting with the provider systems 120. The external systemsinterface 110 also allows external systems to interact with the socialnetworking system 100, for example, to access the social networkinformation or to update information present in the social networkingsystem 100. For example, the social networking system 100 can use theexternal systems interface 110 to interact with an external system thatoffers calendar services allowing users to schedule calendar entries.The social networking system 100 may create a new calendar entry for ameeting in the external calendar service using the external systemsinterface 110 and the external calendar service can providenotifications, e.g., RSVP messages from participants to the socialnetworking system 100 using the external systems interface 110. Thesocial networking system 100 can propagate the notification messages toappropriate users. The social networking system 100 comprises modulesother than those shown in FIG. 1, for example, modules illustrated inFIG. 2 that are further described herein.

Social Networking System Architecture

FIG. 2 is a diagram of the system architecture of a social networkingsystem for allowing users of a social networking system to interact withsocial deals, in accordance with an embodiment of the invention. Thesocial networking system 100 includes a web server 220, a newsfeedgenerator 235, a dashboard manager 115, an external system interface110, an action logger 240, an action log 245, a social deal manager 250,a deal pricing module 255, an event manager 280, a user profile store265, a connection store 230, a deal store 225, an event store 260, and aprovider store 275. In other embodiments, the social networking system100 may include additional, fewer, or different modules for variousapplications. Conventional components such as network interfaces,security mechanisms, load balancers, failover servers, management andnetwork operations consoles, and the like are not shown so as to notobscure the details of the system.

The social networking system 100 allows users to communicate orotherwise interact with each other and access content, as describedherein. The social networking system 100 stores user profile objects 175in the user profile store 265. The information stored in user profilestore 265 describes the users of the social networking system 100,including biographic, demographic, and other types of descriptiveinformation, such as work experience, educational history, gender,sexual preferences, hobbies or preferences, location, and the like. Theuser profile store 265 may also store information provided by the user,for example, images, videos, comments, and status updates. Images ofusers may be tagged with the identification information of theappropriate users displayed in an image.

Any action that a particular user takes using the social networkingsystem 100 is associated with the user's profile 175, throughinformation maintained in a database or other data repository. Suchactions may include, for example, adding a connection to the other user,sending a message to the other user, reading a message from the otheruser, viewing content associated with the other user, seeing what dealsanother user likes or is following, attending an event posted by anotheruser, among others. In addition, a number of actions described below inconnection with other objects are directed at particular users, so theseactions are associated with those users as well.

The connection store 230 stores data describing the connections betweendifferent users of the social networking system 100, for example, asrepresented in a connection object 195. The connections are defined byusers, allowing users to specify their relationships with other users.For example, the connections allow users to generate relationships withother users that parallel the users' real-life relationships, such asfriends, co-workers, partners, and so forth. In some embodiment, theconnection specifies a connection type based on the type ofrelationship, for example, family, or friend, or colleague. Users mayselect from predefined types of connections, or define their ownconnection types as needed.

Connections may be added explicitly by a user, for example, the userselecting a particular other user to be a friend, or automaticallycreated by the social networking site based on common characteristics ofthe users (e.g., users who are alumni of the same educationalinstitution). Connections in social networking system 100 are usually inboth directions, but need not be, so the terms “connection” and “friend”depend on the frame of reference. For example, if Bob and Joe are bothconnected to each other in the social networking system 100, Bob andJoe, both users, are also each other's friends. The connection betweenusers may be a direct connection; however, some embodiments of a socialnetworking system 100 allow the connection to be indirect via one ormore levels of connections. Connections may also be established betweendifferent types of entities for example, the social networking system100 can have an object representing a school and users of the socialnetworking system 100 that study in the school or who are alumni of theschool can connect with the school in the social networking system 100.

The deal store 225 stores information describing deals, for example,deals represented as deal objects 180. The deal object 180 is associatedwith metadata describing the deal and comprises data specific to aninstance of the deal. An instance of a deal may be created for each userthat performs certain actions associated with the deal. For example, ifthe activation of a deal requires participation by connections of auser, the deal object 180 stores information describing the participantsin the deal. As other connections of the user perform actions thatcontribute towards activation of the deal, the social networking system100 updates the information stored in the deal object 180.

The information stored in a deal object 180 comprises a description ofthe deal, one or more deadlines associated with the deal, for example, astart date and end date during which the deal can be used, a locationassociated with the deal, a type of the deal, a redemption method forthe deal, maximum redemption associated with the deal, a description ofthe benefit offered by the deal, for example, a percent reduction inprice, any conditions or rules associated with the deal, a profile pageassociated with the deal on the social networking system 100, and otherinformation. The deal object also stores information identifying thedeal provider 120, a user associated with the deal, and connections ofthe user associated with the deal, for example, if the deal activationrequires participation by connections of the user. The deal object 180may store information describing a source of the deal, for example,whether the deal was imported from an external system, or the deal wasadded to the social networking system 100 by the deal provider 120, orif the deal was initiated by a user of the social networking system 100.

A deal object may be associated with different types of socialinformation including users of the social networking system 100, eventsrepresented in the social networking system 100, actions performed byusers that are associated with the deal, and the like. This informationmay be stored in various data stores in the social networking system100. Associations between the deal objects 180 and the relevant socialinformation associated with the deal may be either stored explicitly inthe social networking system 100 or determined as needed. The dealobject 180 may be associated with actions of users associated with thedeal, for example, users that liked the deal or are following the deal,users who subscribed to the deal, users who purchased the deal, userswho shared or gifted the deal, users who checked-in to locationsassociated with the deal, comments made by users on the deal etc.

A deal store 225 also stores a category associated with each deal thatdescribes the type of product or services associated with the deal.Examples of categories of deals include “dining,” “shopping,”“professional services,” “beauty and spas,” “health and fitness,”“automotive,” “pet care,” “financial services,” “travel,” and “arts andentertainment.” In an embodiment, the social networking system 100 mayhave a list of business categories defined to classify variousbusinesses. The social networking system 100 stores a mapping from thebusiness categories to the deal categories to allow objects associatedwith business categories to be matched with deal categories. Forexample, business categories “restaurant” and “bar” map to the dealcategory “dining” Similarly, business categories “hotel,” “airport,” and“transit stop” map to deal category “travel.”

The event store 260 stores information describing events associated withthe social networking system 100. An event object 190 may be defined fora real-world event, such as a birthday party. A user interested inattending the event may establish a connection with the event object. Auser may create the event object 190 by defining information about theevent such as the time and place and a list of invitees. Other users maysend a reply to the invitation (an RSVP message) i.e., accept or rejectthe invitation, comment on the event, post their own content (e.g.,pictures from the event), and perform any other actions enabled by thesocial networking system 100 for the event 185. Accordingly, the creatorof the event object 190 as well as the invitees for the event mayperform various actions that are associated with that event object 190.Events may be associated with deals, for example, an event objectrepresenting a concert may be associated with a deal providing adiscounted price for the concert. The event store 260 stores theassociations between events and deals.

The provider store 275 stores the provider objects 185 that storeinformation describing the providers 120. The information describing aprovider 120 includes categories associated with products/servicesoffered by the provider, locations associated with the provider, andinformation needed for interacting with the provider APIs 125. In anembodiment, the provider object 185 locally caches informationdescribing the provider that is frequently used by the social networkingsystem 100. The locally cached information is synchronized with theinformation stored in the provider system 120, for example, based on aregular schedule, or every time the information stored in the providersystem 120 changes. The social networking system 100 stores associationsbetween the provider objects 185 and the deals provided by the provider120.

The web server 220 links the social networking system 100 via thenetwork 210 to one or more client devices 105; the web server 220 servesweb pages, as well as other web-related content, such as Flash, XML, andso forth. The web server 220 provides the functionality of receiving androuting messages between the social networking system 100 and the clientdevices 105 as well as other external systems, for example, the providersystems 120. These messages can be instant messages, queued messages(e.g., email), text and SMS (short message service) messages, or anyother suitable messaging technique. In some embodiments, a message sentby a user to another can be viewed by other users of the socialnetworking system 100, for example, by the connections of the userreceiving the message. An example of a type of message that can beviewed by other users of the social networking system 100 besides therecipient of the message is a wall post.

The action logger 240 is capable of receiving communications from theweb server 220 about user actions on and/or off the social networkingsystem 100. The action logger 240 populates the action log 245 withinformation about user actions to track them. Any action that aparticular user takes with respect to another user is associated witheach user's profile, through information maintained in a database orother data repository, such as the action log 245. Such actions mayinclude, for example, adding a connection to the other user, sending amessage to the other user, reading a message from the other user,viewing content associated with the other user, attending an eventposted by another user, among others. In addition, a number of actionsdescribed below in connection with other objects are directed atparticular users, so these actions are associated with those users aswell. When a user performs an action using the social networking system100, the social networking system 100 adds an entry for that action tothe log 245.

In some embodiments, the system 100 is not a social networking systembut communicates with a social networking system to obtain the necessarysocial network information. The system 100 may communicate with thesocial networking system, for example, using APIs provided by the socialnetworking system 100. In these embodiments, some modules shown in FIG.2 may run in the system 100, whereas other modules may run in the remotesocial networking system.

The interactions between the client devices 105 and the socialnetworking system 100 as well as the interactions between the provider120 and the social networking system 100 are typically performed via anetwork 210, for example, via the internet. The network 250 enablescommunications between the client device 220 and the social networkingsystem 210. In one embodiment, the network 210 uses standardcommunications technologies and/or protocols. In another embodiment, theentities can use custom and/or dedicated data communicationstechnologies instead of, or in addition to, the ones described above.Depending upon the embodiment, the network 210 can also include links toother networks such as the Internet.

Deals Dashboard

The dashboard 130 provides a user interface for allowing a user of asocial networking system 100 to view and interact with deals. FIG. 3shows screenshots of the dashboard, in accordance with an embodiment ofthe invention. The dashboard 130 can be a part of a user interface thatallows various types of user interactions with a social networkingsystem 100. A user viewing the user's information 300 on a socialnetworking system 100 (for example, from the user's home page) canrequest different type of information from the social networking system100 by pressing buttons or links 350. The different types of informationrequested by the user include newsfeed stories of interest to the user,messages received by the user via the social networking system 100,connections of the user, events associated with the user, and the like.The user can request information describing deals associated with theuser by clicking on button 320.

When a user requests deals information, the dashboard manager 115receives deals relevant to the user as suggested by the suggestionmodule 265. The suggestion module 265 ranks various deals based on theirrelevance to a user and selects deals for suggestion to the user. A usercan select a particular deal 310 presented to the user and request moreinformation describing the deal. FIG. 4 show screenshots of a userinterface presenting social information associated with a particulardeal selected by the user. FIG. 4 shows detailed information describingthe deal, for example, the location 420 of the deal, the deal price 440,and images 450 describing the product/services associated with the deal.The user interface presented in FIG. 4 allows user actions 410associated with the deal including purchasing the deal, recommending thedeal to a connection, commenting on the deal, liking the deal,participating in a social deal, uploading an image associated with thedeal and the like. The dashboard 130 may also present different types ofsocial information associated with the deal, for example, connections430 of the user that performed an action associated with the deal,events associated with the deal, social groups associated with the deal,images associated with the deal and the like.

Associating Deals with Actions

A deal may be associated with an event represented in the socialnetworking system 100. A deal can often be related to a real-worldevent. For example, a deal may be associated with a concert event or arestaurant deal may be associated with an event corresponding to aparty. Real world events can be represented in the social networkingsystem 100, for example, as an event object 190 and the representationstored in the event store 230. The representation of an event in thesocial networking object may be associated with a profile page thatprovides information describing the event and allows users to takeactions associated with the event, for example, sending an RSVP message,commenting on the event, liking the event, uploading pictures associatedwith the event and the like.

The event manager 280 analyzes the deal to determine certain attributesof the event. The event manager 280 can obtain the location of the eventbased on a location associated with the deal. For example, the locationof an event corresponding to a restaurant deal is very likely to be thelocation of the restaurant. In an embodiment, the event manager 280 mayprovide a choice of multiple values of the attribute to the user via thedashboard manager 115 to allow user to select one particular value. Forexample, if a restaurant offering a deal has multiple locations, theevent manager 280 can populate the location attribute for thecorresponding event with various locations of the restaurant.

The event manager 280 can populate the time for the event based on timeinformation obtained from the deal. For example, a user-initiated dealmay be associated with a very narrow range of time. The time for theoccurrence of the event can be pre-populated based on the range of timeassociated with the deal. The event manager 280 can allow the user 135to modify the time of the event using the dashboard 130.

The event manager 280 can populate the attendees for an event createdfor a social deal based on the participants of the deal. The eventmanager 280 may suggest attendees for the event based on socialinformation associated with the user, for example, connections thatpurchased similar deals in the past, connections that have subscribed tothe deal or to deals from that category or deals from the same providerin the past, connections that checked-in to the location associated withthe provider of the deal, connections that are tagged into a photoassociated with the provider or the provider's location, or in photosassociated with the category of deals, or connections that haveinteracted with the user on topics related to the category of the deal.The user 135 can modify the attendee list by adding or removing theattendees populated by the event manager 280 using the dashboard 130.The event manager 280 can populate the host of the event associated witha social deal as the person who requested initiation of the deal.

The social networking system 100 may provide a user interface thatallows a user to provide the information for creating a deal in astructured format or in an unstructured format as natural language text.FIG. 5 shows a user interface allowing a user to initiate a deal via asocial networking system 100. As shown in FIG. 5, a user can propose adeal via a user interface 500. The user can specify the type 510 ofactivity that the user is interested in (e.g., eating at a restaurant),the time 520 for the activity, the place for the activity 530 and socialinformation 540 associated with the activity, for example, the number ofconnections that are likely to participate or information identifyingthe connections that intend to participate. The information provided bythe user via the user interface 500 can be shared with connections ofthe user, for example, via newsfeed. For example, if a user indicatesthat he would like to eat at a restaurant along with 4 friends, thestory can be provided to the user's connections and the connectionsdecide whether they want to participate in the deal or not.

A deal may be associated with an existing event. For example, a concertmay be associated with an existing event object 190. If a user purchasesa deal associated with the concert, the event manager 280 can send areply message to the event, for example, an RSVP message on behalf ofthe user for the event. The event manager 280 may request confirmationfrom the user 135 via the dashboard 130 before sending the reply messagefor the event.

FIG. 6 shows a flowchart of a process for associating deals with actionsin the social networking system that a user can take. The dashboardmanager receives 610 a request for performing an action associated witha deal. The action associated with the deal can include purchasing thedeal, participating in a social deal, or checking in to a location ofthe deal. The dashboard manager 115 sends a request to the suggestionmodule 265 to determine whether there are any actions associated withthe deal that can be suggested to the user. The suggestion module 265determines 620 one or more entities represented in the social networkingsystem 100 that are associated with the deal. Once the requiredinformation is available, the social networking system 100 can send theinformation to the provider to check if the deal is acceptable to theprovider.

Examples of entities represented in the social networking system 100that can be associated with a deal include a social group, an event, animage, or another deal. A social group may be associated with the dealif the information describing the social group including the interestsof members of the group matches the category of the deal. The socialgroup may match the deal if a user or the provider explicitly indicatesso. For example, the social group may be created by the provider of thedeal. Examples of images associated with a deal include imagesdetermined to be captured at a location of the deal and images showing aproduct associated with the deal. A deal can be associated with anotherdeal if the two deals are offered by the same provider for a relatedproduct, if the deal is offered by another provider that offers similarproducts, or if the deal belongs to the same category. A deal can beassociated with another deal of a user interested in the first deal isalso likely to be interested in the second deal. For example, a concertdeal can be associated with a deal of a restaurant located close to thelocation of the concert since there is a likelihood that a person goingto the concert may utilize the services of the restaurant before orafter the concert. Similarly a deal for a restaurant can be associatedwith a deal from an ice cream shop close to the restaurant, since a usermight visit the ice cream shop after a meal at the restaurant. A dealcan be associated with another deal if the two deals are for relatedproducts or services. In an embodiment, the suggestion module 265matches attributes of the deals to determine an association betweenthem. For example, if a deal requires physical presence of a user at alocation, the suggestion module 265 ensures that the locationsassociated with the two deals are within a threshold distance.Similarly, if the deal is associated with a particular time, forexample, the time of an event, the suggestion module 265 matches thetimes of the deals. For example, if a deal does not become active untilthe time of the event, the deal is not associated with a deal for theevent.

The suggestion module 265 identifies 630 an action associated with therepresentation of the entity associated with the deal that can beexecuted by a user. The type of action requested may depend on the typeof entity represented in the social networking system 100 that isassociated with the deal. For example, if the entity associated with thedeal is a social group, the requested action can be to become member ofthe social group. If the entity associated with the deal is an image,the requested action can be to retrieve the image, to comment on theimage, to like the image, or to suggest the image to another user. Ifthe entity associated with the deal is another deal, the requestedaction can be any action associated with a deal including purchasing thedeal, suggesting the deal to a friend, or following the deal. If theentity associated with the deal is an event, the requested action can beto send an RSVP message for the event. The suggestion module 265 sends640 a request to perform the action to the user 135 via the dashboardmanager 115.

In an embodiment, the social networking system 100 provides social dealsthat require actions associated with connections of a user in order toactivate the deal. A social deal may be activated by actions performedby the connections of the user. For example, the social deal isactivated by more than a threshold number of connections of the userchecking-in to a location associated with the deal. Alternatively, thedeal may be activated when more than a threshold number of connectionsof a user purchase the deal. The social deal manager 250 invokes theevent manager 280 to create and schedule an event associated with thesocial deal. The event manager 280 receives information identifying thepotential participants of the social deal from the social deal manager250. The event manager 280 identifies potential participants of theevent based on the potential participants of the social deal.

A potential participant of the social deal may confirm with the socialdeal manager 250 that the potential participant is participating in thesocial deal. The event manager 280 changes the status of the potentialparticipant in the event as a confirmed attendee for the event. On theother hand a potential participant of the event may confirm with theevent manager 280 that the potential participant is participating in theevent. The event manager 280 informs the social deal manager 250 so thatthe social deal manager 250 updates the status of the potentialparticipant as a confirmed participant of the social deal. In anembodiment, the total number of confirmed participants in the socialdeal determines the price of the social deal or the value of the benefitoffered by the social deal. Therefore, the event manager 280synchronizes the participants for the event with the social deal therebyupdating one of these entities when the other entity changes. In anembodiment, a new user that was not originally a participant of thesocial deal or the event may view the event and request to be added tothe event. For example, if a newsfeed describing the event is sent toconnections of the user that originated the social deal, one or moreconnections may be interested in the event. If the new user is added tothe event, the event manager 280 updates the social deal by adding thenew user as a potential participant of the social deal, subject to anapproval by the user originating the social deal.

FIG. 7 is a flowchart of a process for creating events associated withdeals in the social networking system, in accordance with one embodimentof the invention. The dashboard manager receives 710 a request forperforming an action associated with a deal, for example, purchasing thedeal, participating in a social deal, or checking in to a location ofthe deal. The dashboard manager 115 invokes the event manager 280 tocreate 720 a representation of an event associated with the deal. Theevent manager 280 populates 730 the attributes of the event based on theinformation describing the deal. For example, the event manager 280 maypopulate 730 potential participants based on the deal. If the deal is asocial deal, the event manager 280 may determine potential participantsfor the event based on users that are potential participants of thesocial deal. The event manager 280 may select connections of the user aspotential participants, for example, connections of the user that haveinteracted with the current deal or deals similar to the current deal.The event manager 280 may analyze past events based on deals similar tothe current deal to determine the potential participants. In anembodiment, the event manager 280 manager grants access to the event toall the potential participants so that they can access informationdescribing the event and also interact with the event, for example, toindicate whether they will be participating in the event or not.

The event manager 280 may propose time of the event based on informationassociated with the deal. For example, if the deal is for a show(concert, movie, game or any other type of show), the event manager mayselect potential time slots for the events based on the timing of theshow. If the deal is for a restaurant, the event manager 280 suggeststimes for an event that occur before the deal expires. The event manager280 may suggest a location for the event based on locations ofbusinesses associated with the deal, for example, the deal provider. Forexample, if the deal is for a show, the event manager 280 suggestsvarious locations where the deal is valid for the show. The eventmanager 280 may use locations associated with the potential/actualparticipants of the event or the deal to select one or more locationsfor the event. For example, if the deal is valid for a show that isbeing presented in various cities, the event manager 280 may propose thecity in which most of the potential participants of the event arelocated. In an embodiment, the event manager 280 analyzes previouslocations of similar events in which the user participated to suggest alocation.

The event manager 280 sends information describing the event to the userand also to potential participants of the event. If any user requestsinformation describing the event, the event manager 280 sendsinformation describing the deal as part of the information provided tothe user. The user can change the attributes and update the events ifnecessary. For example, the event manager 280 may propose a set oflocations as possible locations for the event and the user can select asuitable location from the proposed set or use a different location fromoutside the proposed set. Similarly, the event manager 280 may propose asuggested time for the event and the user can select one of the optionsproposed by the event manager 280 or specify a new time for the event.Similarly, the user may change the potential participants for the eventby either adding or deleting the participants. The process of finalizingthe attributes of the event may be interactive, for example, the eventmanager 280 may propose certain values that may be edited by the userand the event manager 280 may revise the proposed value of attributesthat have not been finalized by the user. For example, the event manager280 may determine a location for the event based on the locations of thepotential participants. However, if the user updates the list ofpotential participants, the event manager 280 may revise the locationbased on the new list of potential participants.

In an embodiment, the event manager 280 sends a request to an externalcalendar service to create a calendar entry for the event. The eventmanager 280 receives details of the calendar entry created and providesdetails to all the potential participants of the event. The eventmanager 280 may also send requests to external systems associated withthe deal to obtain resources for the event. For example, if the deal isoffered by a restaurant that provides external application programminginterfaces (APIs), the event manager 280 may send a request to theexternal system of the restaurant to reserve a table at the scheduledtime of the event. If the deal is for a show, the event manager 280 maysend a request to the external system associated with the show topurchase tickets and reserve seats for the show.

Alternative Applications

The features and advantages described in the specification are not allinclusive and, in particular, many additional features and advantageswill be apparent to one of ordinary skill in the art in view of thedrawings, specification, and claims. Moreover, it should be noted thatthe language used in the specification has been principally selected forreadability and instructional purposes, and may not have been selectedto delineate or circumscribe the inventive subject matter.

The foregoing description of the embodiments of the invention has beenpresented for the purpose of illustration; it is not intended to beexhaustive or to limit the invention to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure.

Some portions of this description describe the embodiments of theinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, and/or it may comprise ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a tangible computer readable storage medium or any typeof media suitable for storing electronic instructions, and coupled to acomputer system bus. Furthermore, any computing systems referred to inthe specification may include a single processor or may be architecturesemploying multiple processor designs for increased computing capability.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the embodimentsof the invention is intended to be illustrative, but not limiting, ofthe scope of the invention, which is set forth in the following claims.

1. A computer-implemented method comprising: receiving a request forparticipation in a deal from a user of the social networking system;creating a representation of an event in the social networking system,wherein the representation of the event comprises attributes populatedbased on information associated with the deal; presenting informationdescribing the event to the user, wherein the information comprisesattributes of the event populated based on estimated values; andreceiving updates to one or more attributes of the event from the user.2. The computer-implemented method of claim 1, further comprising:determining one or more connections of the user as potentialparticipants for the event.
 3. The computer-implemented method of claim3, wherein the potential participants for the event are determined basedon past events associated with deals similar to the deal.
 4. Thecomputer-implemented method of claim 3, further comprising: grantingaccess to information describing the event to the potential participantsdetermined for the event.
 5. The computer-implemented method of claim 1,wherein the representation of the event comprises a time of the event,the method further comprising: determining one or more suggestions forthe time of the event based on a time associated with the deal.
 6. Thecomputer-implemented method of claim 1, wherein the representation ofthe event comprises a location for the event, the method furthercomprising: determining one or more suggestions for the location of theevent based on locations associated with the deal.
 7. Thecomputer-implemented method of claim 6, wherein the determining thesuggestions for the location of the event comprise: determining one ormore past events in which the user participated that are similar to theevent; and determining suggestions for the location of the event basedon locations of the past events.
 8. The computer-implemented method ofclaim 1, further comprising: receiving request for informationdescribing the event; and providing information describing the deal inresponse to the request for information.
 9. The computer-implementedmethod of claim 1, further comprising: sending a request to a calendarservice to create a calendar entry for the event.
 10. Thecomputer-implemented method of claim 1, further comprising: sending arequest to an external system of a business provider associated with thedeal to schedule resources for the event.
 11. A computer-implementedmethod comprising: receiving a request for creation of a social dealfrom a user of the social networking system, wherein activation of thesocial deal requires multiple users to perform actions associated withthe social deal; sending a request to schedule an event, the eventcorresponding to an activity benefiting from the deal; responsive toreceiving information identifying potential participants of the socialdeal, sending a request to add each potential participant to the event;and responsive to receiving a message confirming participation by apotential participant in the event, sending a request to confirmparticipation by the user in the social deal.
 12. Thecomputer-implemented method of claim 11, further comprising: responsiveto receiving a message confirming participation by a potentialparticipant in the social deal, sending a request to confirmparticipation by the user in the event.
 13. The computer-implementedmethod of claim 11, further comprising: responsive to receiving arequest to participate in the event from a new user, adding the new useras a potential participant in the social deal.
 14. Thecomputer-implemented method of claim 11, wherein the representation ofthe event comprises a location for the event, the method furthercomprising: determining one or more suggestions for the location of theevent based on a proximity of locations associated with the deal withlocations associated with potential participants.
 15. Thecomputer-implemented method of claim 11, further comprising: grantingaccess to information describing the event to the potential participantsof the social deal.
 16. A computer-implemented method comprising:receiving information describing an action associated with a deal, theaction performed by a user of a social networking system; identifying anentity represented in the social networking system associated with thedeal; identifying an action associated with the entity that can beperformed by users of the social networking system; and sending arequest to the user for performing the action associated with theentity.
 17. The computer-implemented method of claim 16, wherein theentity is a social group and the action is getting a membership in thesocial group.
 18. The computer-implemented method of claim 16, whereinthe entity is another deal and the action is participating in the deal.19. The computer-implemented method of claim 16, wherein the entity isan image associated with the location of the deal and the action is oneof retrieving the image, liking the image, or commenting on the image.20. The computer-implemented method of claim 16, wherein the entity isan event and the action is sending an RSVP message for the event.